package bootstrap

import (
	"github.com/jsoq/goblog/app/models/category"
	"github.com/jsoq/goblog/pkg/config"
	"github.com/jsoq/goblog/pkg/model"
	"github.com/jsoq/goblog/app/models/user"
	"github.com/jsoq/goblog/app/models/articles"
	"time"
)

//初始化数据和DB
func SetupDB() {

	//建立数据库连接池
	db := model.ConnectDB()

	// 命令行打印数据库请求的信息
	sqlDB := db.DB()

	// 设置最大连接数
	sqlDB.SetMaxOpenConns(config.GetInt("database.mysql.max_open_connections"))
	// 设置最大空闲连接数
	sqlDB.SetMaxIdleConns(config.GetInt("database.mysql.max_idle_connections"))
	// 设置每个链接的过期时间
	sqlDB.SetConnMaxLifetime(time.Duration(config.GetInt("database.mysql.max_life_seconds")) * time.Second)

	//创建和维护数据表结构
	//migration(db)
	db.AutoMigrate(&user.User{},
		&user.User{},
		&article.Article{},
		&category.Category{},
	)
}

//func migration(db *gorm.DB) {
//
//	// 自动迁移
//	db.AutoMigrate(
//		&user.User{},
//		&articles.Article{},
//	)
//}